Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Tutorial] Videoget


t3ix

Rekomendowane odpowiedzi

Opublikowano

hai ;)

 

VideoGet - Program pozwalający na ściąganie filmików z ponad 900 różnych stron typu YouTube, MySpace, Google Video, Yahoo Video, MetaCafe itd.

 

Cel: Usunięcie limitu 20 bezpłatnych pobrań

 

Potrzebne narzędzia: OllyDbg

 

Tutorial pisany w oparciu o najnowszą wersję VideoGet 2011 (5.0.2.59)

 

1. Odpalamy OllyDbg, File -> open file -> videoget.exe

2. Prawy przycisk myszki -> search for -> all referenced strings ( moduł videoget.exe ).

 

2.png

 

3. Szukamy stringu "csKeyValid" i klikamy na nim enter.

 

3.png

 

4. Przeniosło nas do adresu 008A1155, ale nas interesuje to co jest wyżej.

 

4.png

 

008A10ED  |.  E8 DE91FFFF   CALL 0089A2D0 // wywołanie jakiejś ciekawej funkcji, jej wynik jest w AL
008A10F2  |.  84C0          TEST AL,AL    // if( AL == 0 )
008A10F4  |.  0F84 80000000 JE 008A117A   // warunkowy skok do msgboxa informującym o błędnym kodzie aktywacyjnym

 

5. Można spróbować zamienić JE 008A117A na JNE 008A117A, czyli skok do złego kodu zostanie wykonany jeśli podamy poprawny kod aktywacyjny, jeśli podamy zły kod aktywacyjny ( losowe znaki ) to wyskoczy informacja o zarejestrowaniu ale nic więcej, nadal będzie odliczać do 0 limit pobrań.. :angry:

6. Rzućmy więc okiem na funckję pod adresem 0089A2D0 ( ctrl + g lub enter na linijce CALL 0089A2D0 ).

7. Widzimy coś takiego:

 

5.png

 

0089A2EF  |.  E8 54ACF8FF   CALL 00824F48 // funkcja co zamienia nasz klucz rejestracyjny na string podobnej treści do tego "C5F05661BAFDFB6FBFFC80CD1265CE0A".
0089A2F4  |.  BE 10270000   MOV ESI,2710 // ESI - licznik pętli która zostanie wykonana maksymalnie 10000 razy ( 2710 w systemie szesnastkowym = 10000 w dziesiętnym )
0089A2F9  |.  BF 08328E00   MOV EDI,OFFSET VideoGet.008E3208         ; PTR to ASCII "C5F05661BAFDFB6FBFFC80CD1265CE0A" // wrzuca do EDI wskaźnik na pierwszy string do porównania z wygenerowanym z naszego kodu.
0089A2FE  |>  8B07          /MOV EAX,DWORD PTR DS:[EDI] // EAX = klucz programu, zmienia się co każde wykonanie pętli
0089A300  |.  8B55 FC       |MOV EDX,DWORD PTR SS:[EBP-4] // do EDX nasz wygenerowany klucz
0089A303  |.  E8 DCC8B6FF   |CALL 00406BE4 // porównuje oba klucze
0089A308  |.  75 04         |JNE SHORT 0089A30E // jeśli są różne to skacze do 0089A30E
0089A30A  |.  B3 01         |MOV BL,1 // jeśli są takie same to do BL wrzuca 1...
0089A30C  |.  EB 06         |JMP SHORT 0089A314 // i wyskakuje z pętli
0089A30E  |>  83C7 04       |ADD EDI,4 // EDI = EDI + 4 zmieniamy klucz programu na kolejny do porównania z naszym.
0089A311  |.  4E            |DEC ESI // ESI = ESI - 1
0089A312  |.^ 75 EA         \JNE SHORT 0089A2FE // wracamy na początek pętli, jeśli ESI nie jest zerem.

 

w c++ wyglądałoby to mniej więcej tak:

 

char *TablicaKluczy[10000] = 
{
"C5F05661BAFDFB6FBFFC80CD1265CE0A",
"B3BDDF55B2DA36367583B1DE736D7628",
"F591D14379D3C4CC0CEDF366AD773B7E",
itd..
};

char *naszKod; // to co wpisalibyśmy w programie
char *naszKlucz = GenerujKod( naszKod ); // program oblicza klucz z naszego kodu
char *temp;

for(int esi=10000; esi > 0; esi--)
{
temp = TablicaKluczy[esi]; 
     if(temp == naszKlucz)
     {
  // BL = 1 -> OK, koniec pętli
  break;
     }
}

 

8. Czyli tylko nam if przeszkadza, odpowiada za niego linijka 0089A308 JNE SHORT 0089A30E.

9. Wywalmy ten niepotrzebny kod, edit --> copy to executable :)

 

6.png

 

10. Fill with nops ( No OPeration - kod nic nie robi )

 

7.png

 

11. No i save file, zapisujemy na stary videoget.exe

 

8.png

 

12. Jeśli wszystko zrobiłeś poprawnie będzie pisało po uruchomieniu, że jest zarejestrowany i licznik pobrań zniknie smiley_big.png

 

9.png

 

 

Artykuł napisany wyłącznie w celach edukacyjnych, nie ma na celu działania komukolwiek na szkodę.

Jako autor tego tekstu zabraniam kopiowania go na inne strony.

Opublikowano

Kolejny świetny tutorial w twoim wykonaniu, ukazujący możliwości RE.

Brawo!

 

Leci + : )

Wygląd mnie pierdoli, tak samo jak reputacja i twoje zdanie...

  • 2 tygodnie później...
Opublikowano

Bardzo dziękuję. Wiedziałem o tym sposobie, ale nawet nie chciało mi się zaczynać, bo to było w jakimś innym programie i było bardzo długie i pracochłonne. Jeszcze raz dzięki xD i masz +

fe1cf0dafa02aa74.jpg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...